﻿namespace RStudio.UIFramwork
{
    /// <summary>
    /// 生命周期
    /// </summary>
    public interface IUIBaseBehaviour
    {
        /// <summary>
        /// 当 UI 创建时调用
        /// </summary>
        /// <remarks>
        /// 此阶段不适用于初始化组件。仅用于外部通知调用。若有需要，请在 <see cref="UIBase.StartUI"/> 中进行。
        /// </remarks>
        public virtual void CreateUI() { }

        /// <summary>
        /// 当 UI 活跃时调用
        /// </summary>
        public virtual void ActiveUI() { }

        /// <summary>
        /// 当 UI 首次活跃时
        /// </summary>
        /// <remarks>
        /// 仅在首次活跃时调用。若需要初始化组件等预制体内其他操作，建议此阶段进行。<br/>
        /// 或在 <see cref="UIBase.InitComponent"/> 专属方法进行。
        /// </remarks>
        public virtual void StartUI() { }

        /// <summary>
        /// 当 UI 待机时调用
        /// </summary>
        public virtual void DeActiveUI() { }

        /// <summary>
        /// 当 UI 销毁时调用
        /// </summary>
        /// <remarks>
        /// 释放所有你可能用到的资源。
        /// </remarks>
        public virtual void DisposeUI() { }
    }
}
